// 引入 Koa 构造函数
const Koa = require('koa');

// 通过构造函数创建 web 服务
const app = new Koa();

// 基于中间件来使用 async await JS 单线程的，所以我们要使用异步来提升程序的处理能力
// 异步编程
// 参数接收
app.use(async (ctx, next) => {
    if (ctx.path === '/favicon.ico') {
        return;
    }
    ctx.body = '1';
    await next();
    ctx.body += '5';
});

app.use(async (ctx, next) => {
    ctx.body += '2';
    await next();
    ctx.body += '4';
});

app.use(async (ctx) => {
    ctx.body += '3';
});

// 监听端口，等待请求
app.listen(3000, () => {
    console.log('Koa Server running at http://localhost:3000');
});
